package com.cloudm.technician.di

import android.content.Context
import com.cloudm.technician.data.db.DbHelper
import com.cloudm.technician.data.network.CloudmBoxApi
import com.cloudm.technician.data.network.CommonApi
import com.cloudm.technician.data.network.PersonalApi
import com.cloudm.technician.data.preferences.PreferencesHelper
import com.qiniu.android.storage.UploadManager
import dagger.Component
import javax.inject.Singleton

/**
 * 作者: wesley
 * 时间: 2017/11/20
 * 描述: 提供实例
 */
@Singleton
@Component(modules = [(AppModule::class)])
interface AppComponent {

    val context: Context

    val preferenceHelper: PreferencesHelper

    val dbHelper: DbHelper

    val commonApi: CommonApi

    val personalApi: PersonalApi

    val cloudmApi: CloudmBoxApi

    val uploadManager: UploadManager

    @ForCloudm
    fun getCloudmApiForCloudm(): CloudmBoxApi

    @ForUploadPic
    fun getCommmonApiForUploadPic(): CommonApi
}